package com.qtt.app.service;

import com.qtt.app.entity.*;
import com.qtt.app.entity.ReturnInfo.ReturnResearch;
import com.qtt.app.entity.ReturnInfo.ReturnTopCourses;
import com.qtt.app.entity.ReturnInfo.ReturnTotalCourseInfo;
import com.qtt.app.entity.ReturnInfo.StudyCourse.*;

import java.util.List;

public interface AppCourseService {


    List<AppCourse> getAllAppCourse();

    List<CourseClass> getAllCourseClass();

    List<ExactCourse> getAllExactCourse();

    List<GeneralCourse> getAllGeneralCourse();

    List<ReturnTotalCourseInfo> getAllAppCourseInfo();

    List<ReturnTotalCourseInfo> getInstitutionCourseByInstId(Integer institutionId);

    int addAppCourse(AppCourseWithBLOBs appCourseEntity);

    ReturnTotalCourseInfo getCourseById(Integer appcourseId);

    //因为teacherId并不在appcourse中，而是在原来的general_course表中，所以直接在general查就可
    List<GeneralCourse> getTeacherCourseByTeacherId(Integer teacherId);

    List<ReturnTotalCourseInfo> getCoursesByType(String courseType);

    GeneralCourse getLastEntity();

    GeneralCourse getGeneralCourseByTitle(String title);

    List<ReturnResearch> searchCourses(String keyword);

    List<ReturnTotalCourseInfo> getOnlineCourses(int flag,Long userId);

    ReturnStudyCourseDetails getStudyCourseDetails(String generalId);

    List<Video> getStudyCourseVideos(String generalId);

    List<Notice> getStudyCourseNotice(String generalId);

    List<Resource> getStudyCourseResource(String generalId);

    List<ReturnMyOnlineCourse> getMyOnlineCourses(int flag, Long userId);

    List<ReturnMyOnlineCourse> getMyCourseAll(Long userId);

    List<ReturnTopCourses> getTopCourses();

    NoticeOffline getOfflineCourseNotice(String generalId);


}
